package com.activiti.ActivitiUtils.factory;


import com.activiti.ActivitiUtils.bean.Page;
import com.activiti.ActivitiUtils.bean.WrappedTaskBean;
import org.activiti.engine.task.Task;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * create by chongyahhh
 * 2020/4/4
 */
public class TaskBeanWrappedFactory {

    public static WrappedTaskBean inject(Task var) {
        return new WrappedTaskBean(var.getId(), var.getName(), var.getOwner(), var.getAssignee(), var.getDescription(), var.getCreateTime(),
                var.getClaimTime(), var.getDueDate(), var.getPriority(), var.getProcessDefinitionId(), var.getProcessInstanceId(), var.getParentTaskId(),
                var.getTaskDefinitionKey(),var.getTaskLocalVariables(),var.getProcessVariables());
    }

    public static List<WrappedTaskBean> inject(List<Task> var) {
        List<WrappedTaskBean> data = new ArrayList<>();
        Iterator iterator = var.iterator();
        while (iterator.hasNext()) {
            Task temp = (Task) iterator.next();
            data.add(new WrappedTaskBean(temp.getId(), temp.getName(), temp.getOwner(), temp.getAssignee(), temp.getDescription(), temp.getCreateTime(),
                    temp.getClaimTime(), temp.getDueDate(), temp.getPriority(), temp.getProcessDefinitionId(), temp.getProcessInstanceId(), temp.getParentTaskId(),
                    temp.getTaskDefinitionKey(),temp.getTaskLocalVariables(),temp.getProcessVariables()));
        }
        return data;
    }

    public static Page<List<WrappedTaskBean>> inject(List<Task> var, Integer pageNum, Integer pageSize, Integer totalPage) {
        Page<List<WrappedTaskBean>> data = new Page<>();
        data.setData(inject(var));
        data.setPageNum(pageNum);
        data.setPageSize(pageSize);
        data.setTotalPage(totalPage);
        return data;
    }
}
